热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

总和|本文_Python描述LeetCode39.组合总和

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python描述LeetCode39.组合总和相关的知识,希望对你有一定的参考价值。Python描述L

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python描述 LeetCode 39. 组合总和相关的知识,希望对你有一定的参考价值。



Python描述 LeetCode 39. 组合总和


  大家好,我是亓官劼(qí guān jié ),在【亓官劼】公众号、CSDN、GitHub、B站等平台分享一些技术博文,主要包括前端开发、python后端开发、小程序开发、数据结构与算法、docker、Linux常用运维、NLP等相关技术博文,时光荏苒,未来可期,加油~


  如果喜欢博主的文章可以关注博主的个人公众号【亓官劼】(qí guān jié),里面的文章更全更新更快。如果有需要找博主的话可以在公众号后台留言,我会尽快回复消息.







本文原创为【亓官劼】(qí guān jié ),请大家支持原创,部分平台一直在恶意盗取博主的文章!!! 全部文章请关注微信公众号【亓官劼】。




题目

给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。

candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。

对于给定的输入,保证和为 target 的不同组合数少于 150 个。

示例 1:

输入:candidates = [2,3,6,7], target = 7
输出:[[2,2,3],[7]]
解释:
2 和 3 可以形成一组候选,2 + 2 + 3 = 7 。注意 2 可以使用多次。
7 也是一个候选, 7 = 7 。
仅有这两种组合。

示例 2:

输入: candidates = [2,3,5], target = 8
输出: [[2,2,2,2],[2,3,3],[3,5]]

示例 3:

输入: candidates = [2], target = 1
输出: []

提示:


  • 1 <&#61; candidates.length <&#61; 30
  • 1 <&#61; candidates[i] <&#61; 200
  • candidate 中的每个元素都 互不相同
  • 1 <&#61; target <&#61; 500

Python描述

回溯算法

class Solution:
def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]:
res &#61; []
n &#61; len(candidates)
if target &#61;&#61; 0:
return []
def dfs(combine,idx):
if idx &#61;&#61; len(candidates):
return
# 跳过&#xff0c;不要这个数
dfs(combine,idx&#43;1)
# 要这个数
if sum(combine)&#43;candidates[idx] <&#61; target:
combine.append(candidates[idx])
if sum(combine) &#61;&#61; target:
res.append([_ for _ in combine])
dfs(combine,idx)
combine.pop()
dfs([],0)
return res


推荐阅读
author-avatar
mobiledu2502901287
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有